const path = require("path");
const webpack = require("webpack");

function resolve(dir) {
    return path.join(__dirname, dir);
}

module.exports = {
    publicPath: './',
    outputDir: 'dist',
    devServer: { // 环境配置
        host: '0.0.0.0',
        public: '192.168.0.100:8080',
        port: 8080,
        https: false,
        hotOnly: false,
        disableHostCheck: true,
        open: false,// 配置自动启动浏览器
        overlay: {
            warning: false,
            errors: false
        },
        headers: {
            'Access-Control-Allow-Origin': '*',
        }
    },
    chainWebpack(config) {
        // set svg-sprite-loader
        // 第一步：让其他svg loader不要对src/assets/imgs/svgs进行操作
        config.module
            .rule("svg")
            .exclude.add(resolve("src/assets/fonts/svgs"))
            .end();
        // 第二步：使用svg-sprite-loader 对 src/assets/imgs/svgs下的svg进行操作
        config.module
            .rule("icons")
            .test(/\.svg$/)
            .include.add(resolve("src/assets/fonts/svgs"))
            .end()
            .use("svg-sprite-loader")
            .loader("svg-sprite-loader")
            //定义规则 使用时 <svg class="icon"> <use xlink:href="#icon-svg文件名"></use>  </svg>
            .options({
                symbolId: "icon-[name]"
            })
            .end();
    },
    configureWebpack: {
        plugins: [
            new webpack.ProvidePlugin({
                $: "jquery",

                jQuery: "jquery",
                "windows.jQuery": "jquery"
            })
        ],
        externals: {
            AMap: "window.AMap",
            // AMap: true,
            // AMapUI: true
        }
    },

}